home *** CD-ROM | disk | FTP | other *** search
/ Biodiversity of Illinois 2: Woodland Habitats / Biodiversity of Illinois 2 - Woodland Habitats.iso / mac / casts / PDFxtraBehaviors.cst / 00010_Script_PDF_GetNumberOfPages < prev    next >
Text File  |  2006-07-11  |  6KB  |  184 lines

  1. -- Get Number of Pages
  2.  
  3. Property pEvent, pSprite, pDestMember, pAlertFlag
  4.  
  5. on doGetNbrPages me
  6.   -- put the total pages into the member specified
  7.   myMember = me.ExtractMemberFromString(pDestMember)[2]
  8.   myMember.text = string(PDF_GetNumberOfPages(sprite pSprite))
  9.   if PDF_status(sprite pSprite) then alert "PDF Behavior Error"&RETURN&PDF_error(sprite pSprite)
  10.   
  11. end doGetNbrPages
  12.  
  13. on mouseUp me
  14.   if (pEvent = #mouseUp) then doGetNbrPages(me)
  15. end mouseUp
  16.  
  17. on mouseDown me
  18.   if (pEvent = #mouseDown) then doGetNbrPages(me)
  19. end mouseDown
  20.  
  21. -- standard behavior stuff --
  22. on getPropertyDescriptionList me
  23.   set defaultValues = GetDefaultValues (me)
  24.   
  25.   set pdfSpriteList = getProp (defaultValues, #spriteList)
  26.   set defSprite     = getProp (defaultValues, #defaultSprite)
  27.   if (defSprite=0) then
  28.     if the ticks - pAlertFlag > 10 then
  29.       alert "Please create a sprite of type PDF first."
  30.     end if
  31.     set pAlertFlag = the ticks -- The ticks when the user clicked "OK"
  32.     
  33.     exit
  34.   end if
  35.   
  36.   -- retrieve all members of type text, field or Flashcomponent
  37.   lTextFields = me.GetMembers([#text, #field, #flashcomponent])
  38.   if (lTextFields = []) then
  39.     if the currentSpriteNum then
  40.       alert "You need at least one member of type #field or #text to use this behavior."
  41.     end if
  42.     exit
  43.   end if 
  44.   
  45.   set p_list = [:]
  46.   addprop p_list, #pEvent, [ #comment: "Event", #format:#symbol, #range:[#mouseUp, #mouseDown], #default:#mouseUp]
  47.   addprop p_list, #pSprite, [ #comment: "PDF Sprite is in channel:", #format:#symbol, #range:pdfSpriteList, #default:defSprite]
  48.   if (lTextFields.count = 0) then
  49.     addprop p_list, #pDestMember, [ #comment: "Put result in:", #format: #string, #default:"<no named fields or text members available>"]
  50.   else  
  51.     addprop p_list, #pDestMember, [ #comment: "Put result in:", #format:#member, #default:lTextFields[1], #range:lTextFields]
  52.   end if   
  53.   
  54.   return p_list
  55. end
  56.  
  57. on getBehaviorDescription
  58.   tmp = "Retrieve the number of pages in the current PDF document to designated Director field." & RETURN& "All platforms."
  59.   tmp = tmp &RETURN&RETURN& "--- PARAMETERS ---" &RETURN& " - Event: mouseUp or mouseDown."
  60.   tmp = tmp &RETURN& " - PDF Sprite is in channel: which channel contains the PDF Sprite."
  61.   tmp = tmp &RETURN& " - Put result in: the name of a text or field cast member to store the number in."
  62.   tmp = tmp &RETURN&RETURN& "Free to use and abuse. (c)1999-2005, Integration New Media, Inc."  &RETURN& "Thanks to James Newton for his suggestions"
  63.   return tmp
  64.   
  65. end
  66.  
  67. on getBehaviorTooltip
  68.   tmp = "Retrieve the number of pages in the current PDF document" &RETURN& "to designated Director field." & RETURN& "All platforms."
  69.   return tmp
  70.   
  71. end
  72.  
  73. -- utils --
  74. on GetDefaultValues me
  75.   if the currentSpriteNum then
  76.     set spriteList = GetSpriteList (me #PDF)
  77.     if count (spriteList) then
  78.       set defaultSprite = getAt (spriteList, 1)
  79.     else
  80.       set defaultSprite = 0
  81.     end if
  82.     
  83.     return [#spriteList: spriteList, #defaultSprite: defaultSprite]
  84.     
  85.   else -- the currentSpriteNum = 0
  86.     -- Director is merely recompiling this script: return dummy values
  87.     return [#spriteList: [1], #defaultSprite: 1]
  88.   end if
  89. end 
  90.  
  91.  
  92. on GetSpriteList me, memberType
  93.   -- return list of sprites of type memberType in current frame
  94.   global version
  95.   if (char 1 of version = 6) then
  96.     set maxSprite = 120
  97.   else
  98.     set maxSprite = the lastChannel
  99.   end if
  100.   
  101.   set aList=[]
  102.   
  103.   repeat with i = 1 to maxSprite
  104.     set spriteMember = the member of sprite i
  105.     -- if (string(m) contains "member 0") then next repeat -- unnecessary
  106.     if (the type of spriteMember = memberType) then -- (JN) Line break
  107.       append (aList, i)
  108.     end if
  109.   end repeat
  110.   
  111.   return aList
  112. end GetSpriteList
  113.  
  114.  
  115. on GetMembers me, theMembersTypeNeeded  
  116.   
  117.   lResult = []
  118.   
  119.   lCastLib = the number of castLibs
  120.   
  121.   repeat while lCastLib -- repeat through all linked castlibs
  122.     
  123.     lMemberNum = the number of members of castLib(lCastLib)
  124.     
  125.     repeat while lMemberNum -- repeat through all members of the current castlib
  126.       lMemberType = member(lMemberNum, lCastLib).type
  127.       
  128.       if (theMembersTypeNeeded.getOne(lMemberType) > 0) then -- check if the member's type is contained in theMembersTypeNeeded
  129.         lName = member(lMemberNum, lCastLib).name 
  130.         if (lName <> "") then 
  131.           
  132.           lResult.AddAt(1, lName&&"(member"&&lMemberNum&&"of castlib"&&lCastLib&")") -- Add the member to the list
  133.         end if
  134.       end if
  135.       
  136.       set lMemberNum = lMemberNum - 1 -- check the next member
  137.     end repeat
  138.     
  139.     set lCastLib = lCastLib - 1 -- check the next castlib
  140.   end repeat
  141.   
  142.   return lResult
  143. end GetMembers
  144.  
  145. --
  146. -- Extract name and reference to a member contained in a string
  147. --    in a list [<name>, <(member xxx of castlib yyy)>]
  148. -- the String contains a reference to a member formatted like
  149. --    "<member name> (member xxx of castlib yyy)"
  150. --
  151. on ExtractMemberFromString me, theString
  152.   lResult = ["", VOID]
  153.   
  154.   if (StringP(theString)) then -- check if theString contains a string
  155.     lPos = offset("(member ", theString) -- find the offset of the substring "(member "
  156.     if (lPos > 0) then -- substring found = theString is a valid member reference
  157.       lName= ""
  158.       
  159.       if (lPos > 2) then
  160.         lName = theString.char[1..lPos-2]
  161.         if (lName) = "<no name>" then
  162.           lName = ""
  163.         end if
  164.       end if
  165.       
  166.       lMember = value(theString.char[lPos..theString.chars.count])
  167.       -- check if the member name and member reference are consistent
  168.       if (lMember <> VOID) then
  169.         if (lMember.name <> lName) then -- the user probably moved the cast member, we'll try to find it
  170.           if (lName <> "") then -- the member didn't have a name, so it's useless to look for it
  171.             lMember = member(lName)
  172.           else
  173.             lMember = VOID
  174.           end if
  175.         end if
  176.       end if
  177.       
  178.       lResult = [lName, lMember]
  179.     end if
  180.   end if
  181.   
  182.   return lResult
  183. end ExtractMemberFromString
  184.